package ru.zombator.taskman.core.query;

import java.util.concurrent.TimeoutException;

/**
 * Интерфейс для синхронной отправки запросов от клиента серверу и получения
 * ответов.
 * 
 * @author nvamelichev
 *
 */
public interface IClient {
	/**
	 * Отправляет пакет для обработки на сервер
	 *
	 * @return ответный пакет
	 * @param packet
	 *            - отправляемый пакет
	 * @throws TimeoutException
	 *             - время ожидания ответа истекло
	 */
	ITypedPacket sendPacket(ITypedPacket packet) throws TimeoutException;

	/**
	 * освобождает ресурсы, занятые объектом
	 */
	void dispose();
}
